package com.limespot.api;

import java.util.Collection;

public interface User extends Comparable<User> {

  /**
   * Returns the user name for this {@link User}.
   *
   * @return the user name for this {@link User}.
   */
  String getUsername();
  
  /**
   * Returns the name for this {@link User}.
   *
   * @return the name for this {@link User}.
   */
  String getName();  
  
  /**
   * Returns the ID for this {@link User}.
   * 
   * @return the ID for this {@link User.
   */
  int getId();

  /**
   * Returns the tagline for this {@link User}.
   *
   * @return the tegline for this {@link User}.
   */
  String getTagline();
  
  /**
   * Returns the bio for this {@link User}.
   *
   * @return the bio for this {@link User}.
   */
  String getBio();  
  
  /**
   * Returns the URL for this {@link User}.
   *
   * @return the URL for this {@link User}.
   */
  String getURL();  

  /**
   * Returns the large image URL for this user.
   *
   * @return the large image URL for this user.
   */
  String getLargeImageURL();

  /**
   * Returns the small image URL for this user.
   *
   * @return the small image URL for this user.
   */
  String getSmallImageURL();

  /**
   * Returns all the contacts for this user.
   *
   * @return all the contacts for this user.
   */
  Collection<User> getContacts();

}